var $messageTable=$("#messageTable");

//防止表头与表格不对齐
$(window).resize(function () {
    $messageTable.bootstrapTable('resetView');
});

$(function () {
    $('.form-horizontal select').selectpicker('refresh');

    messageInit(true,false)//
    companyListFun() //公司列表

    // 获取url参数，通过type判断入口为消息提醒，直接打开未读消息
    var urlRequest = getRequest();
    if (urlRequest.type == 'messageTip') {
        tabSwitch($('.new-tabs li:eq(1) a'),1,2);
    }

    // 编辑器
    var editor = new FroalaEditor('#editor', {
        placeholderText: '',
        charCounterCount: true,//默认 显示字数
        saveInterval: 0,//不自动保存，默认10000，0为不自动保存
        toolbarBottom: false,//默认
        toolbarInline: false,//true选中设置样式,默认false
        imageUploadMethod: 'POST',
        heightMin: 300,
        charCounterMax: 3000,  //最大字数限制，-1为不限制
        // saveURL: '/NewsController/addNotify',  //自动保存的地址（body参数为html内容）
        saveURL: '/knowledgeSection/addKnSection',  //自动保存的地址（body参数为html内容）

        saveParams: {postId: '1'},  //保存内容时传的参数
        spellcheck: false,  //是否允许浏览器对输入内容进行拼写检查
        imageUploadURL: '/file/uploadByOneFileEdit',//上传到本地服务器
        videoUploadURL: '/file/uploadByOneFileEdit',
        imageDefaultWidth: 1300,
        imageResizeWithPercent: true,
        autoHeightEnabled:true,
        language: 'zh_cn',
    });

    $('#newMessage').on('hide.bs.modal', function () {
        $('#editor .fr-view').html('');
    })

})

/**
 * 功能：获取url参数
 * */
function getRequest() {
    var url = location.search; // 获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
        }
    }
    return theRequest;
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/***
 * 消息中心 -主体
 *
 * */
function themeHtml(value,row,index) {
    let html='';
    html=`<a href="#" id="themeId">${value}</a>`;
    return html;
}
window.themeEvents={
    "click #themeId":function (e,value,row,index) {

        let msgType=''
        if($("#sentMessage").val()==1){
            msgType=1
        }else{
            msgType=2
        }
        parent.$(parent.document).data('multitabs').create({
            iframe: true,
            title: '回复信息',
            url: "/front/messageManager/messageDetailUser?messageId="+row.messageId + "&msgType=" + msgType
        }, true);
    }
}


/**
 * 消息中心
 */
function queryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    //普通搜索条件

    params.newsType = $("#newsType").val();  //0已读消息 1未读消息 2审批消息 3汇款消息 4系统消息

    params.sentMessage = $("#sentMessage").val();
    params.bs = '1';  //0管理 1用户
    return params;
}

function messageInit(senderName,receiverName) {
    //先销毁表格
    $messageTable.bootstrapTable('destroy');
    $messageTable.bootstrapTable({
        classes: 'table table-bordered table-hover table-striped',
        url: '/message/selectMessageList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",//请求内容类型
        dataType: "json",//数据类型
        striped: false,//是否显示行间隔色
        sortable: true,//是否启用排序
        sortOrder: "desc",//排序方式
        sortName: 'createTm',//排序字段
        cache: false,//是否使用缓存
        showColumns: false,//显示隐藏列
        showRefresh: false,//显示刷新按钮
        showToggle: false,//切换显示样式
        showFooter: false,//显示Table脚部
        pagination: true,//是否显示分页
        showPaginationSwitch: false,//是否显示分页按钮
        clickToSelect: false,//是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,//最少要显示的列数
        undefinedText: '-',//cell没有值时显示
        sidePagination: "server",//分页方式：client客户端分页，server服务端分页
        uniqueId: 'messageId',
        idField: 'messageId',
        pageSize: 10,//每页的记录行数
        pageNumber: 1,//初始化加载第1页，默认第1页
        pageList: [],//可供选择的每页的行数

        // fixedColumns: true,     // 冻结列
        // fixedNumber: 4,         // 左侧固定列


        queryParams: queryParams,//查询参数
        columns: [
            {title: '主键', field: 'messageId', visible: false},
            {title: '发送人id', field: 'senderId', visible: false},
            {title: '', field: 'checked',checkbox: true, align: 'right',valign: 'middle',width:10},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', formatter: indexFormat,width:100},
            {title: '发送人', field: 'senderName', align: 'left', valign: 'middle', visible: senderName},
            {title: '接收人', field: 'receiverName', align: 'left', valign: 'middle', visible: receiverName},
            {title: '主题', field: 'theme', align: 'left', valign: 'middle', formatter: themeHtml,events:themeEvents},
            {title: '发送时间', field: 'sendTm', align: 'right', valign: 'middle', visible: senderName},
            {title: '接收时间', field: 'receiverTm', align: 'right', valign: 'middle', visible: receiverName},


        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };

            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {
            //加载成功时执行
            // $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方

            // 加载完数据更新系统右上角消息数量
            if ($("#newsType").val() == '1') {
                // console.log('未读消息列表');
                var iframeDom = $(window.parent.document);
                iframeDom && iframeDom.find('#unreadCount').text(data.total);
            }
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

// tab切换
function tabSwitch(t,i,k) {
    $(t).parent().addClass('active');
    $(t).parent().siblings().removeClass('active');
    if(i==0){
        $(".btn-read").hide();
    }else{
        $(".btn-read").show();
    }

    // $(".tab-active").eq(i).addClass('active');
    // $(".tab-active").eq(i).siblings().removeClass('active');
    $("#newsType").val(i)
    $("#sentMessage").val(k)

    // $messageTable.bootstrapTable('refresh');
    if(i===''){
        messageInit(false,true)
    }else{
        messageInit(true,false)
    }

}

//标记删除
function markDelet(typeId) {

    if($messageTable.bootstrapTable('getSelections').length<1){
        $.alert('请选择需要标记已读/删除的列！')
    }else{
        let messageId=[],messageGet=$messageTable.bootstrapTable('getSelections');
        for(let i=0,len=messageGet.length;i<len;i++){
            messageId.push(messageGet[i].messageId)
        }
        let msgType=''
        if(typeId==2 && $("#sentMessage").val()==1){
            msgType=1
        }else{
            msgType=2
        }
        let data={
            messageIds:messageId,
            type:typeId ,//状态 1标记已读 2标记删除
            msgType //markRead这个接口type 为2 的时候msgType 是已发消息的tab传1   其他传2
        }
        $.ajax({
            type: 'post',
            url: '/message/markRead',
            dataType: "json",
            contentType: "application/json;charset=utf-8",
            data: JSON.stringify(data),
            success: function (result){

                if(result.code==='000000'){
                    $.alert('成功');
                    $messageTable.bootstrapTable('refresh');
                }else{
                    $.alert('失败');
                }
            },
            error:function (err) {
                $.alert('失败');
            }
        })
    }

}



/****
 *
 *
 * */


/**
* 新建提交
* */

function submitNewMessage() {
    $('.form-horizontal').bootstrapValidator({
        fields: {
            companyList: {
                validators: {
                    notEmpty: {
                        message: '部门不能为空'
                    },

                }
            },
            addMessage: {
                validators: {
                    notEmpty: {
                        message: '业务员不能为空'
                    }
                }
            },
            theme: {
                validators: {
                    notEmpty: {
                        message: '消息主题不能为空'
                    }
                }
            },
            /*newsDetail: {
                validators: {
                    notEmpty: {
                        message: '消息内容不能为空'
                    }
                }
            },*/


        },
    })
    $(".form-horizontal").bootstrapValidator('validate');//提交验证
    if (!$(".form-horizontal").data('bootstrapValidator').isValid()) {//获取验证结果，如果成功，执行下面代码

        return;
    }

    var detailHtml = $('#editor .fr-view').html();

    // 验证编辑器内容是否为空
    var detaiArr = [...new Set(detailHtml.split('<p><br></p>'))];
    if (detaiArr.length == 1 && detaiArr[0] == '') {
        $.alert({
            title: '系统提示',
            content: '消息内容不能为空，请填写内容！'
        });
        return;
    }

    let jsonData={
        companyId: $('#companyList').val(),     // 发送人公司id
        accountId: $('#addMessage').val(),      // 发送人id
        theme: $('#theme').val(),               // 主题
        // newsDetail: $('#newsDetail').val(),  // 消息详情
        newsDetail: detailHtml,                 // 消息详情
        newsType: '5',                          // 消息类型 2审批消息 3回款消息 4系统消息 5普通消息(传5)
    }
    $.ajax({
        url: '/message/addMessage',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success:function (res) {
            if(res.code=='000000'){


                $.alert({
                    title: '提示',
                    content: '操作成功',
                    buttons: {
                        confirm: {
                            text: '确认',
                            btnClass: 'btn-primary',
                            action: function () {
                                $("#newMessage").modal('hide')
                                $messageTable.bootstrapTable('refresh');
                            }
                        }
                    }
                })

            }else{
                $.alert(res.message)
            }
        },
        error:function (err) {
            $.alert(err.message)
        }
    })
}

$('#newMessage').on('hide.bs.modal', function () {
    $("#companyList").val('');
    $("#addMessage").val('');
    $("#companyList").selectpicker('refresh');
    $("#addMessage").selectpicker('refresh');
    $("#theme").val('');
    $("#newsDetail").val('');

    if($('.form-horizontal').data('bootstrapValidator')!=undefined){
        $(".form-horizontal").data('bootstrapValidator').destroy();
        $('.form-horizontal').data('bootstrapValidator', null);
    }
})


function companyListFun() {
    $.ajax({
        url:"/message/selectCompanyList",
        type: 'POST',
        dataType: "json",
        success:function (data) {

            if(data.code==='000000'){
                let html = '<option value="">请选择</option>';
                $.each(data.data, function(n, value) {
                    html += '<option value="'+ value.companyId+'">' + value.companyName + '</option>';

                });

                $('#companyList').html(html).selectpicker('refresh');

            }else{
                $.alert('失败')
            }

        },
        error:function (error) {
            $.alert('失败')
        }
    })
}

function addMessageFun(companyId) {
    $.ajax({
        url:"/message/selectUserList",
        type: 'POST',
        dataType: "json",
        data:{
            companyId
        },
        success:function (data) {

            if(data.code==='000000'){
                let html = '<option value="">请选择</option>';
                $.each(data.data, function(n, value) {
                    html += '<option value="'+ value.accountId+'">' + value.userName + '</option>';

                });

                $('#addMessage').html(html).selectpicker('refresh');

            }else{
                $.alert('失败')
            }

        },
        error:function (error) {
            $.alert('失败')
        }
    })
}

function changeAhhMessage(th) {
    addMessageFun($(th).val())
}

